#pragma once

#include "../data/proteindata.h"
#include "datanode.h"

namespace PBVP {
	class MainInterface;
	class ProteinAttribWidget;
	///
	class ProteinDataNode : public DataNode {
		Q_OBJECT
	public:
		ProteinDataNode(ProteinData *pProtein, MainInterface *mainInterface);

		~ProteinDataNode();

		virtual bool isRenderable() {return false;} // TODO
		///
		virtual DataInterface* data() const {
			return m_pProtein;
		}
		/// <summary>
		/// Display function
		/// </summary>
		virtual void render();
		/// 
		virtual QWidget* getPropertyWidget() const; 
		/// 
		virtual void setRenderer(RenderPlugin * pRenderer);

	protected:
		ProteinData *m_pProtein;
		ProteinAttribWidget *m_pAttribWidget;
	};
}